home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 February
/
EnigmA AMIGA RUN 34 (1999)(G.R. Edizioni)(IT)[!][issue 1999-02].iso
/
earcd
/
devel
/
libx11
/
include
/
x11
/
xmu
/
displayque.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-01-01
|
5KB
|
163 lines
/* $XConsortium: DisplayQue.h,v 1.5 91/07/22 23:45:45 converse Exp $
*
* Copyright 1989 Massachusetts Institute of Technology
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of M.I.T. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. M.I.T. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#ifndef _XMU_DISPLAYQUE_H_
#define _XMU_DISPLAYQUE_H_
#include <X11/Xmu/CloseHook.h>
#include <X11/Xfuncproto.h>
/*
* Public Entry Points
*
*
* XmuDisplayQueue *XmuDQCreate (closefunc, freefunc, data)
* XmuCloseDisplayQueueProc closefunc;
* XmuFreeDisplayQueueProc freefunc;
* caddr_t data;
*
* Creates and returns a queue into which displays may be placed. When
* the display is closed, the closefunc (if non-NULL) is upcalled with
* as follows:
*
* (*closefunc) (queue, entry)
*
* The freeproc, if non-NULL, is called whenever the last display is
* closed, notifying the creator that display queue may be released
* using XmuDQDestroy.
*
*
* Bool XmuDQDestroy (q, docallbacks)
* XmuDisplayQueue *q;
* Bool docallbacks;
*
* Releases all memory for the indicated display queue. If docallbacks
* is true, then the closefunc (if non-NULL) is called for each
* display.
*
*
* XmuDisplayQueueEntry *XmuDQLookupDisplay (q, dpy)
* XmuDisplayQueue *q;
* Display *dpy;
*
* Returns the queue entry for the specified display or NULL if the
* display is not in the queue.
*
*
* XmuDisplayQueueEntry *XmuDQAddDisplay (q, dpy, data)
* XmuDisplayQueue *q;
* Display *dpy;
* caddr_t data;
*
* Adds the indicated display to the end of the queue or NULL if it
* is unable to allocate memory. The data field may be used by the
* caller to attach arbitrary data to this display in this queue. The
* caller should use XmuDQLookupDisplay to make sure that the display
* hasn't already been added.
*
*
* Bool XmuDQRemoveDisplay (q, dpy)
* XmuDisplayQueue *q;
* Display *dpy;
*
* Removes the specified display from the given queue. If the
* indicated display is not found on this queue, False is returned,
* otherwise True is returned.
*/
typedef struct _XmuDisplayQueue XmuDisplayQueue;
typedef struct _XmuDisplayQueueEntry XmuDisplayQueueEntry;
typedef int (*XmuCloseDisplayQueueProc)(
#if NeedFunctionPrototypes
XmuDisplayQueue* /* queue */,
XmuDisplayQueueEntry* /* entry */
#endif
);
typedef int (*XmuFreeDisplayQueueProc)(
#if NeedFunctionPrototypes
XmuDisplayQueue* /* queue */
#endif
);
struct _XmuDisplayQueueEntry {
struct _XmuDisplayQueueEntry *prev, *next;
Display *display;
CloseHook closehook;
caddr_t data;
};
struct _XmuDisplayQueue {
int nentries;
XmuDisplayQueueEntry *head, *tail;
XmuCloseDisplayQueueProc closefunc;
XmuFreeDisplayQueueProc freefunc;
caddr_t data;
};
_XFUNCPROTOBEGIN
extern XmuDisplayQueue *XmuDQCreate(
#if NeedFunctionPrototypes
XmuCloseDisplayQueueProc /* closefunc */,
XmuFreeDisplayQueueProc /* freefunc */,
caddr_t /* data */
#endif
);
extern Bool XmuDQDestroy(
#if NeedFunctionPrototypes
XmuDisplayQueue* /* q */,
Bool /* docallbacks */
#endif
);
extern XmuDisplayQueueEntry *XmuDQLookupDisplay(
#if NeedFunctionPrototypes
XmuDisplayQueue* /* q */,
Display* /* dpy */
#endif
);
extern XmuDisplayQueueEntry *XmuDQAddDisplay(
#if NeedFunctionPrototypes
XmuDisplayQueue* /* q */,
Display* /* dpy */,
caddr_t /* data */
#endif
);
extern Bool XmuDQRemoveDisplay(
#if NeedFunctionPrototypes
XmuDisplayQueue* /* q */,
Display* /* dpy */
#endif
);
_XFUNCPROTOEND
#define XmuDQNDisplays(q) ((q)->nentries)
#endif /* _XMU_DISPLAYQUE_H_ */